<?php
class mdgii extends Model 
{
	private $mTableName = 'SC_Dgii';
	
	public function __construct() 
	{
		parent::Model();
		$this->load->database();
		//$this->load->model(array('mestatus','mcompania','mmodeloservicios','mservicios','metapas','mprocesos','mresponsables'));
	}	


	
	function createCompania($id,$nombre,$idservicio,$idjurisdiccion,$fechausr,$fechasys,$idusario,$idresponsable,$idprovincia,$telefono1,$telefono2,$email,$concta)
	{
	
		$data=array('IdCompania'=>$id,
		            'NombreCompania'=>$nombre,
					'IdServicio'=>$idservicio,
					'IdJurisdiccion'=>$idjurisdiccion,
					'FechaUsrCompania'=>$fechausr,
					'FechaSysCompania'=>$fechasys,
					'IdUsuario'=>$idusario,
					'IdResponsable'=>$idresponsable,
					'IdProvincia'=>$idprovincia,
					'Telefono1Compania'=>$telefono1,
					'Telefono2Compania'=>$telefono2,
					'EmailCompania'=>$email,
					'EstadoCompania'=>0,
					'idStatu'=>2,
					'Contacto'=>$concta);
					
	                $this->db->insert($this->mTableName, $data);	

	         $data2 = array('IdEtapa'=>4,
        	               'IdEstatus'=>2,
        	               'DescripcionProceso'=>'servicio iniciado',
        	               'FechaProceso'=>$fechausr,
        	               'FechaSysProceso'=>$fechasys,
        	               'IdResponsable'=>$idresponsable,
        	               'IdUsuario'=>$idusario,
        	               'IdCompania'=>$this->crearinicio(),
        	               'Comentario'=>'el servicio fue iniciado');		
			             
        	               $this->db->insert('procesos',$data2);		
	
		return true;
		
	}
	
	
	
	function LoadCompaniaById($id_compania) 
	{
		$qresult = $this->db->get_where($this->mTableName, array('IdCompania' => $id_compania));		
		if ($qresult->num_rows() == 0)
		{
			return false;
		}	

			return new companiadgii($qresult->row());
	}
		
	
	function CalcularDiast($fechapar,$fechaact)
	{

		$fechapar_arr=explode('-',$fechapar);
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
	

	
	function LoadCompaniasByProvinciaId($id_provincia) 
	{
			$this->db->where('IdProvincia', $id_provincia);

			$result = $this->db->get($this->mTableName);

			if ($result->num_rows() == 0)
				return false;

			return $this->GetCompaniasArrayFromQueryResult($result);
	}
	
	function LoadCompaniasByIdResponsable($idresponsable) 
	{
			$this->db->where('IdResponsable', $idresponsable);
			$this->db->like('EstadoCompania',0);
			$result = $this->db->get($this->mTableName);

			if ($result->num_rows() == 0)
				return false;

			return $this->GetCompaniasArrayFromQueryResult($result);
	}
	
	
	function LoadHistorico($nombre = false, $start = false, $offset = false, $sortname = false, $sortorder = false)
	{
		$this->db->like('EstadoCompania',1);
	
		
		if($offset != false)
		$this->db->limit($offset, $start);

		$result = $this->db->get($this->mTableName);
		return $this->GetCompaniasArrayFromQueryResult($result);
	}
	
	function colorLoadCompani($ser,$mod,$r)
	{
		$compa = $this->LoadCompanias();
		//$modelo = $this->mmodeloservicios->loadModeloServicios();
		   
		foreach ($compa as $k)
		{
			$dias = $this->CalcularDiast($k->getFechaUsrCompania(),date('Y-m-d'));
			$por = $dias * 100;
			$por = $por / $ser[$k->getIdServicio()]; 
			$data[] = '';
			   if ($r == 'v') {			   	
			   	    if ($por < $mod[1]) {
				      $data[] = $k->getIdCompania();
			       }
			   }
			   elseif ($r == 'a')
			   {
			   	  if ($por >= $mod[1] && $por <= $mod[2] ) {
			   	  	 $data[] = $k->getIdCompania();
			   	  }
			   }
			   else
			   {
			   	  if ($por > $mod[2] ) {
			     $data[] = $k->getIdCompania();
			    }
			   }
		}
		return $data;
	}
	
function LoadCompanias($deli = false,$nombre = false, $start = false, $offset = false, $sortname = false, $sortorder = false) 
	{
		if ($nombre == 'p' || $deli == 0) {
			
			if (strlen($this->session->userdata('inicio')) > 0) {
				$this->db->where('FechaUsrCompania >=',$this->session->userdata('inicio'));
				$this->db->where('FechaUsrCompania <=',$this->session->userdata('fin'));
				$this->db->where('EstadoCompania',0);
			}
			else 
			 
			  $this->db->where('EstadoCompania',0);
		}
		elseif ($nombre == 'l' || $deli== 3)
		{
			$this->db->where('EstadoCompania',3);
		}
		elseif ($nombre == 'm' || $deli== 4)
		{
			$this->db->where('EstadoCompania',4);
		}
		elseif($nombre != false && $nombre != '') {
		
		    if($deli == 2)
		     { 
			     $this->db->like('NombreCompania', $nombre);
			     $this->db->where('EstadoCompania',0);
		     }
		     elseif ($deli == 1)
		     {
		     	$this->db->where('Contacto', $nombre);
		     	$this->db->like('EstadoCompania',0);
		     }
		     elseif ($deli == 3)
		     {
		     	$this->db->where('IdServicio', $nombre);
		     	$this->db->like('EstadoCompania',0);
		     }
		     elseif ($deli == 4)
		     {
		     	$this->db->where('idStatu', $nombre);
		     	$this->db->like('EstadoCompania',0);
		     }
		
		
		    if($offset != false)
		    {
			$this->db->limit($offset, $start);
		    }
		if($sortname != false && $sortorder != false) 
		{
			
			
		}
		}
       $result = $this->db->order_by('IdCompania desc'); 
		$result = $this->db->get($this->mTableName);
		return $this->GetCompaniasArrayFromQueryResult($result);
	}
	
	function LoadCompanyArray()
	{
		$this->db->like('EstadoCompania',0);
		$result = $this->db->get($this->mTableName);
	    $var = $this->GetCompaniasArrayFromQueryResult($result);
	    
	    foreach ($var as $j)
	    {
	    	$var2[] = $j->getIdCompania();
	    }
	    
	    return $var2;
	}

	function LoadCompanias2($nombre = false, $start = false, $offset = false, $sortname = false, $sortorder = false) 
	{

	    $result = $this->db->or_where_in('IdCompania',$nombre);
	    
		$result = $this->db->get($this->mTableName);
		return $this->GetCompaniasArrayFromQueryResult($result);
	}

	
	function GetCount($nombre = false, $tipo = false, $jurisdiccion = false) 
	{
		return count($this->LoadCompanias($nombre, $tipo, $jurisdiccion));
	}
	
	function GetCompaniasArrayFromQueryResult($result) 
	{
			if ($result->num_rows() == 0)
			{
				return false;
			}	

			$companias_arr = array();

			foreach ($result->result() as $record) 
			{
				$companias_arr[]=new compania($record);
			
			}
			
			return $companias_arr;
    }
    
    function Delete($id_compania) 
    {		
			return $this->db->delete($this->mTableName, array('IdCompania' => $id_compania));
	}
	
	function Truncate()
	{   
		$this->db->truncate('procesos'); 
		$this->db->truncate('compania');
	}
	
	function finalizar($id)
	{
		$compania=$this->LoadCompaniaById($id);
		$nombre=$compania->getNombreCompania();
		$idservicio=$compania->getIdServicio();
		$idjurisdiccion=$compania->getIdJurisdiccion();
		$fechausrcompania=$compania->getFechaUsrCompania();
		$fechasyscompania=$compania->getFechaSysCompania();
		$idusuario=$compania->getIdUsuario();
		$idresponsable=$compania->getIdResponsable();
		$idprovincia=$compania->getIdProvincia();
		$telefono1=$compania->getTelefono1Compania();
		$telefono2=$compania->getTelefono2Compania();
		$email=$compania->getEmailCompania();
		
	
		$data=array('NombreCompania'=>$nombre,
					'IdServicio'=>$idservicio,
					'IdJurisdiccion'=>$idjurisdiccion,
					'FechaUsrCompania'=>$fechausrcompania,
					'FechaSysCompania'=>$fechasyscompania,
					'IdUsuario'=>$idusuario,
					'IdResponsable'=>$idresponsable,
					'IdProvincia'=>$idprovincia,
					'Telefono1Compania'=>$telefono1,
					'Telefono2Compania'=>$telefono2,
					'EmailCompania'=>$email,
					'EstadoCompania'=>'1');
		$this->db->where('IdCompania', $compania->getIdCompania());
        if ($this->db->update($this->mTableName, $data))
        {
        	return true;
        }
	}

}


class companiadgii
{
    private $midcompania;
    private $mnombrecompania;
    private $midservicio;
    private $midjurisdiccion;
    private $fechausrcompania;
    private $fechasyscompania;
    private $idusuario;
    private $idresponsable;
    private $idprovincia;
    private $telefono1compania;
    private $telefono2compania;
    private $emailcompania;
    private $contato;
   
    
     function compania($compania)
    {
    	$this->setIdCompania($compania->IdCompania);
    	$this->setNombreCompania($compania->NombreCompania);
    	$this->setIdServicio($compania->IdServicio);
    	$this->setIdJurisdiccion($compania->IdJurisdiccion);
    	$this->setFechaUsrCompania($compania->FechaUsrCompania);
    	$this->setFechaSysCompania($compania->FechaSysCompania);
    	$this->setIdUsuario($compania->IdUsuario);
    	$this->setIdResponsable($compania->IdResponsable);
   		$this->setIdProvincia($compania->IdProvincia);
    	$this->setTelefono1Compania($compania->Telefono1Compania);
    	$this->setTelefono2Compania($compania->Telefono2Compania);
    	$this->setEmailCompania($compania->EmailCompania);
    	$this->setContacto($compania->Contacto);
    }
     
    function setIdCompania($idcompania)
    {
    	$this->midcompania=$idcompania;
    }
    
     function getIdCompania()
    {
    	return $this->midcompania;
    }
    
     function setNombreCompania($nombrecompania)
    {
    	$this->mnombrecompania=$nombrecompania;
    }
    
     function getNombreCompania()
    {
    	return $this->mnombrecompania;
    }
    
     function setIdServicio($idservicio)
    {
    	$this->midservicio=$idservicio;
    }
    
     function getIdServicio()
    {
    	return $this->midservicio;
    }
    
     function setIdJurisdiccion($idjurisdicion)
    {
    	$this->midjurisdiccion=$idjurisdicion;
    }
    
     function getIdJurisdiccion()
    {
    	return $this->midjurisdiccion;
    }
    
     function setFechaUsrCompania($fechausercompania)
    {
    	$this->fechausrcompania=$fechausercompania;
    }
    
     function getFechaUsrCompania()
    {
    	return $this->fechausrcompania;
    }
    
     function setFechaSysCompania($fechasyscompania)
    {
    	$this->fechasyscompania=$fechasyscompania;
    }
    
     function getFechaSysCompania()
    {
    	return $this->fechasyscompania;
    }
  
     function setIdUsuario($idusuario)
    {
    	$this->idusuario=$idusuario;
    }
    
     function getIdUsuario()
    {
    	return $this->idusuario;
    }
    
     function setIdResponsable($idresponsable)
    {
    	$this->idresponsable=$idresponsable;
    }
    
     function getIdResponsable()
    {
    	return $this->idresponsable;
    }
    
     function setIdProvincia($idprovincia)
    {
    	$this->idprovincia=$idprovincia;
    }
    
     function getIdProvincia()
    {
    	return $this->idprovincia;
    }
    
     function setTelefono1Compania($telefono1compania)
    {
    	$this->telefono1compania=$telefono1compania;
    }
    
     function getTelefono1Compania()
    {
    	return $this->telefono1compania;
    }
    
     function setTelefono2Compania($telefono2compania)
    {
    	$this->telefono2compania=$telefono2compania;
    }
    
     function getTelefono2Compania()
    {
    	return $this->telefono2compania;
    }
    
     function setEmailCompania($emailcompania)
    {
    	$this->emailcompania=$emailcompania;
    }
    
     function getEmailCompania()
    {
    	return $this->emailcompania;
    }
    
       function setContacto($emailcompania)
    {
    	$this->contato=$emailcompania;
    }
    
     function getContacto()
    {
    	return $this->contato;
    }
    
}
?>